package com.zang.tree;

/**
 * @author ZVerify
 * @since 2022/11/02 13:02
 * @see <a href="https://leetcode.cn/problems/insert-into-a-binary-search-tree/">...</a>
 **/
public class 二叉搜索树中的插入操作 {


    public TreeNode insertIntoBST(TreeNode root, int val) {

        return dfs(root,val);
    }

    private TreeNode dfs(TreeNode root, int val) {

        // 如果为null则说明到了可以插入的地方了
        if (root == null) {
            return new TreeNode(val);
        }
        // 因为是搜索树所以进行搜索遍历
        if (root.val<val) {
            // 找到插入的值给到当前节点
            root.right = dfs(root.right,val);
        }else {
            root.left = dfs(root.left,val);
        }
        // 返回当前节点给父节点
        return root;
    }
}
